home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.004 / xemacs-1 / xemacs-19.13 / lisp / eos / sun-eos-editor.el < prev    next >
Encoding:
Text File  |  1995-06-16  |  3.2 KB  |  117 lines

  1. ;;; sun-eos-editor.el --- Implements the XEmacs/SPARCworks editor protocol
  2.  
  3. ;; Copyright (C) 13 Jun 1995  Sun Microsystems, Inc.
  4.  
  5. ;; Maintainer:    Eduardo Pelegri-Llopart <eduardo.pelegri-llopart@Eng.Sun.COM>
  6. ;; Author:      Eduardo Pelegri-Llopart <eduardo.pelegri-llopart@Eng.Sun.COM>
  7. ;; Version:    1.7
  8. ;; Header:    @(#) sun-eos-editor.el: v1.7 95/06/15 19:02:11
  9.  
  10. ;; Keywords:    SPARCworks EOS Era on SPARCworks editor
  11.  
  12. ;;; Commentary:
  13.  
  14. ;; Please send feedback to eduardo.pelegri-llopart@eng.sun.com
  15.  
  16. ;;; Code:
  17.  
  18. (require 'eos-common "sun-eos-common")
  19.  
  20. ;; ===============
  21. ;; Editor protocol
  22. ;;
  23. ;; message is
  24. ;; SPRO_Visit_File CONTEXT_UID filename lineno center==0
  25.  
  26. (defvar eos::visit-file-pattern)
  27. (defvar eos::get-src-line-pattern)
  28.  
  29. (defun eos::editor-startup ()
  30.   ;; Actions to do at startup time for eos-editor
  31.   (setq eos::visit-file-pattern
  32.     (eos::create-visit-file-pattern))
  33.   (setq eos::get-src-line-pattern
  34.     (eos::create-get-src-line-pattern))
  35.   (eos::register-get-src-line-pattern)
  36.   )
  37.  
  38. (defun eos::visit-file-callback (msg pat)
  39.   ;; A callback for a SPRO_Visit_File message
  40.   ;; really should be discarded in the pattern
  41.   (let* ((filename
  42.       (get-tooltalk-message-attribute msg 'arg_val 1))
  43.      (lineno-dot
  44.       (read
  45.        (get-tooltalk-message-attribute msg 'arg_ival 2)))
  46.      )
  47.     (if (null (eos::find-line filename lineno-dot 'debugger-visit))
  48.     (message "No frame to select"))
  49.     (return-tooltalk-message msg)
  50.     ))
  51.  
  52. (defun eos::create-visit-file-pattern ()
  53.   ;; Create Visit File pattern
  54.   (let* ((pattern-desc '(category TT_HANDLE
  55.                 scope TT_SESSION
  56.                 class TT_REQUEST
  57.                 op "SPRO_Visit_File"
  58.                 callback eos::visit-file-callback))
  59.      (pattern (make-tooltalk-pattern pattern-desc))
  60.      )
  61.     pattern
  62.     ))
  63.  
  64. (defun eos::register-visit-file-pattern ()
  65.   ;; Register Visit File pattern
  66.   (register-tooltalk-pattern eos::visit-file-pattern))
  67.  
  68. (defun eos::unregister-visit-file-pattern ()
  69.   ;; Unregister Visit File pattern
  70.   (unregister-tooltalk-pattern eos::visit-file-pattern))
  71.  
  72. ;;
  73. ;; ====================
  74. ;;
  75. ;; Auxiliary TT message to get source and lineno.
  76. ;;
  77. ;; message is
  78. ;; SPRO_Get_Src_Line CONTEXT_UID (INOUT filename) (INOUT lineno)
  79.  
  80. ;;
  81.  
  82. (defun eos::get-src-line-callback (msg pat)
  83.   ;; A callback for a SPRO_Get_Src_Line message
  84.   ;; really should be discarded in the pattern
  85.   (let* ((filename
  86.       (buffer-file-name))
  87.      (lineno
  88.       (format "%d" (eos::line-at (point)))))
  89.     (set-tooltalk-message-attribute filename msg 'arg_val 1)
  90.     (set-tooltalk-message-attribute lineno msg 'arg_val 2)
  91.     (return-tooltalk-message msg)
  92.     ))
  93.  
  94. (defun eos::create-get-src-line-pattern ()
  95.   ;; Create a pattern to get filename and lineno
  96.   (let* ((pattern-desc '(category TT_HANDLE
  97.                 scope TT_SESSION
  98.                 class TT_REQUEST
  99.                 op "SPRO_Get_Src_Line"
  100.                 callback eos::get-src-line-callback))
  101.      (pattern (make-tooltalk-pattern pattern-desc))
  102.      )
  103.     pattern
  104.     ))
  105.  
  106. (defun eos::register-get-src-line-pattern ()
  107.   ;; Register Get Src Line pattern
  108.   (register-tooltalk-pattern eos::get-src-line-pattern))
  109.   
  110. (defun eos::unregister-get-src-line-pattern ()
  111.   ;; Unregister Get Src Line pattern
  112.   (unregister-tooltalk-pattern eos::get-src-line-pattern))
  113.   
  114. (provide 'eos-editor)
  115.  
  116. ;;; sun-eos-debugger.el ends here
  117.